A computer application usually includes files, directories, icons, graphical user interface (GUI) objects, and log files. Problems can arise when a user modifies one or more of these objects explicitly, e.g., without conforming the other objects to the modification, thereby breaking the functionality of the application and preventing it from operating as intended. Examples of modifications to application objects that could render an application unusable include: objects deleted to a trash folder or recycle bin or like, objects modified from their expected state, objects overwritten by the user, and objects renamed by the user.
An operating system sometimes seeks to prevent these damaging modifications by issuing a warning to the user to confirm the operation (e.g., “rm file”; “rm: Remove file? y”). But typically there is not a check to see if the object modification will render an application(s) unusable.
Additionally, applications often dynamically create resource files and save them locally to the computer. These additional resources can be installed at virtually any location on the computer at the discretion of the application developer. Should a user want to move, copy, or delete the application, the dynamically created resource files are often not accounted for and are not moved, copied, or deleted, along with other objects of the application. Such inconsistencies or partial moves or deletes of application objects can break the functionality of the application. Unmoved objects that are no longer functioning correctly can also take up system memory.